package chemtools_logica.LN.SFBean;

import chemtools_logica.BDL.IR.BDL_SFBancoRemote;

import chemtools_logica.Beans.BancoBean;

import chemtools_logica.Entidades.Banco;

import chemtools_logica.LN.IL.LN_SFBancoLocal;
import chemtools_logica.LN.IR.LN_SFBancoRemote;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import javax.ejb.EJB;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless(name = "LN_SFBanco", mappedName = "map-LN_SFBanco")
public class LN_SFBancoBean implements LN_SFBancoRemote, LN_SFBancoLocal {
    @Resource
    SessionContext sessionContext;
    @PersistenceContext(unitName = "Chemtools_Logica")
    private EntityManager em;

    @EJB
    private BDL_SFBancoRemote bDL_SFBancoRemote;
    
    public List<BancoBean> getAllbancosActivos(){
        
        List<Banco> listaEntidad = bDL_SFBancoRemote.getBancoFindAll();
        List<BancoBean> listaBean = new ArrayList<BancoBean>();
        
        for(Banco entidad : listaEntidad){
            BancoBean bean = convertEntityToBean(entidad);
            listaBean.add(bean);
        }
        return listaBean;
    }
    
    public void addBanco(BancoBean bean){
        Banco entidad = convertBeanToEntity(bean,1);
        bDL_SFBancoRemote.mergeBanco(entidad);
    }
    
    public BancoBean convertEntityToBean(Banco entidad){
        BancoBean bean = new BancoBean();
        
        bean.setIdBanco(entidad.getIdBanco());
        bean.setNombre(entidad.getNombre());
        
        return bean;
    }
    
    //0 = UPDATE, 1 = INSERT
    public Banco convertBeanToEntity(BancoBean bean, int opc){
        Banco entidad = new Banco();
        if(opc == 0){
            entidad.setIdBanco(bean.getIdBanco()); 
        }
        entidad.setNombre(bean.getNombre());
        
        return entidad;
    }
}
